SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
CREATE PROC [dbo].[SP_TXMVTO_CNTB_I08]    
/*-------------------------------------------------------------------*/    
/*----- Empresa           : OFISIS S.A.                          ----*/    
/*----- Cliente           : OFISIS S.A.                          ----*/    
/*----- Sistema           : Contabilidad                         ----*/    
/*----- Modulo            : Empresa                              ----*/    
/*----- Programa          : Copia un rango de vouchers           ----*/    
/*----- Nombre            : SP_TXMVTO_CNTB_I08                   ----*/    
/*----- Script            : TXMVTO_CNTB                          ----*/    
/*----- Desarrollado por  : Israel Estrada Polanco               ----*/    
/*----- Fecha             : 08/08/1997                           ----*/    
/*----- Base de Datos     : MS SQL Server                        ----*/    
/*----- Version BD        : 6.5                                  ----*/    
/*-------------------------------------------------------------------*/    
/*---- Modificado 1   : Yessica Morales Taipe   ----*/    
/*---- Fecha Modificacion : 27/10/2003     ----*/    
/*---- Detalle    : insertar nulos en los campos   ----*/    
/*----        CO_CLAV_TAOR, CO_TABL_ORIG   ----*/    
/*--------------------------------------------------------------------------*/    
/*---- Modificado 2   : Gustavo Espinoza                                ----*/    
/*---- Fecha Modificacion : 19/08/2005                                  ----*/    
/*---- Detalle    : Update a los datos de origen en las lineas de gestion----*/    
/*--------------------------------------------------------------------------*/   
/*--------------------------------------------------------------------------*/    
/*---- Modificado 3   : pdgv                                            ----*/    
/*---- Fecha Modificacion : 25/03/2008                                  ----*/    
/*---- Detalle    : valida el estado si_mvto_cntb segun parametro de aprobacion ----*/    
/*--------------------------------------------------------------------------*/ 
/*-------------------------------------------------------------------*/    
/*----- Drop proc SP_TXMVTO_CNTB_I08                             ----*/    
/*----- Grant all on SP_TXMVTO_CNTB_I08 to PUBLIC                ----*/    
/*----- SP_TXMVTO_CNTB_I08 '01', 'OFISIS', '07/05/2005', 1, '001', '053', 2005, 7, '0000000005', '0000000010',
        1, '001', '011', 2005, 7 ----*/    
/*-------------------------------------------------------------------*/    
@ISCO_EMPR TD_VC_002,    
@ISCO_USUA          TD_VC_008,    
@IDFE_USUA          TD_DT_001,    
@INNU_CNTB_EMP1 TD_IN_001_CONT,    
@ISCO_UNID_CTB1 TD_VC_003,    
@ISCO_OPRC_CTB1 TD_VC_003,    
@INNU_ANO1 TD_IN_004_ANNO,    
@INNU_MES1 TD_IN_002_MESE,    
@ISNU_AST1 TD_VC_010,    
@ISNU_AST2      TD_VC_010,    
@INNU_CNTB_EMP2 TD_IN_001_CONT,    
@ISCO_UNID_CTB2 TD_VC_003,     
@ISCO_OPRC_CTB2 TD_VC_003,    
@INNU_ANO2 TD_IN_004_ANNO,    
@INNU_MES2 TD_IN_002_MESE    

as    
Declare 
@VNNU_ULTI_ASTO TD_IN_001,
@VSNU_ASTO	TD_VC_010,
@VSNU_ASTO_CTB2	TD_VC_010,
@VSNU_ASTO_ACTU	TD_VC_010,
@VNNU_SECU	TD_IN_001,
@VDFE_ASTO_CNTB TD_DT_001,
@VSCO_CNTA_EMPR TD_VC_020, 
@VSTI_AUXI_EMPR TD_VC_001, 
@VSCO_AUXI_EMPR TD_VC_020,     
@VSTI_DOCU	TD_VC_003, 
@VSNU_DOCU	TD_VC_020, 
@VDFE_DOCU 	TD_DT_001, 
@VSTI_CAMB	TD_VC_003, 
@VSCO_MONE	TD_VC_003, 
@VNFA_CAMB	TD_NU_015_006, 
@VNFA_CAMB_DIAR	TD_NU_015_006, 
@VSTI_OPER	TD_VC_003, 
@VNIM_MVTO_ORIG TD_NU_016_004,
@VNIM_MVTO_CNTB TD_NU_016_004, 
@VSDE_GLOS      TD_VC_100, 
@VSNO_GIRA	TD_VC_050, 
@VSCO_ORDE_SERV	TD_VC_020, 
@VSSI_MVTO_CNTB	TD_VC_003,
@VSCO_UNID_ORIG	TD_VC_003, 
@VSCO_OPRC_ORIG	TD_VC_003, 
@VSNU_ASTO_ORIG	TD_VC_010, 
@VSNU_SECU_ORIG TD_IN_001,
@VSCO_CNTA_ORIG TD_VC_020,
@VSST_OTRS	TD_VC_020, 
@VDFE_DOCU_VENC TD_DT_001, 
@VSTI_DOCU_REFE	TD_VC_003, 
@VSNU_DOCU_REFE TD_VC_020, 
@VDFE_DOCU_REFE TD_DT_001, 
@VNNU_PROC	TD_IN_001, 
@VNNU_PROC_SECU TD_IN_001, 
@VDFE_ENTR_CHEQ TD_DT_001, 
@VDFE_PROG_CHEQ TD_DT_001,
@VSST_IMPR_CHEQ TD_VC_001, 
@VSST_GEST	TD_VC_001, 
@VSST_REDO	TD_VC_001, 
@VSST_FLAG	TD_VC_020, 
@VSCO_TIPO_OPER TD_VC_003, 
@VSST_DIFE_CAMB TD_VC_001, 
@VSST_CANC_DOCU TD_VC_001, 
@VSST_DIFE_MAYO TD_VC_001,

@VSST_ASIE_APRO TD_VC_001,
@VSST_ESTA  TD_VC_003

Select @VSST_ASIE_APRO = IsNull(ST_ASIE_APRO, 'N')
From TMPARA_CONT 
Where CO_EMPR = @ISCO_EMPR 

If @VSST_ASIE_APRO = 'N'
 Begin 
  Select @VSST_ESTA = 'APR'
 End 
Else 
 Begin 
  Select @VSST_ESTA = 'DIG'
 End 

Select @VNNU_ULTI_ASTO = Isnull(NU_ULTI_ASTO, 0)
From TCFECH_PROC
Where CO_EMPR = @ISCO_EMPRAnd NU_CNTB_EMPR = @INNU_CNTB_EMP2    
And CO_UNID_CNTB = @ISCO_UNID_CTB2    
And CO_OPRC_CNTB = @ISCO_OPRC_CTB2
And NU_ANNO = @INNU_ANO2
And NU_MESE = @INNU_MES2

--select @VNNU_ULTI_ASTO

Select @VSNU_ASTO_ACTU = ' '

Declare CU_TXMVTO_CNTB_I18_1 cursor      
for      
 Select  NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,     
 TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG, 
 IM_MVTO_CNTB, DE_GLOS, NO_GIRA, CO_ORDE_SERV, SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG, 
 NU_ASTO_ORIG, NU_SECU_ORIG, CO_CNTA_ORIG, ST_OTRS, FE_DOCU_VENC, FA_CAMB_DIAR, TI_DOCU_REFE, 
 NU_DOCU_REFE, FE_DOCU_REFE, NU_PROC, NU_PROC_SECU, FE_ENTR_CHEQ, FE_PROG_CHEQ, 
 ST_IMPR_CHEQ, ST_GEST, ST_REDO, ST_FLAG, CO_TIPO_OPER, ST_DIFE_CAMB, ST_CANC_DOCU, 
 ST_DIFE_MAYO
  From TXMVTO_CNTB    
  Where CO_EMPR = @ISCO_EMPR    
  and NU_CNTB_EMPR = @INNU_CNTB_EMP1
  and CO_UNID_CNTB = @ISCO_UNID_CTB1  
  and CO_OPRC_CNTB = @ISCO_OPRC_CTB1  
  and NU_ANNO = @INNU_ANO1    
  and NU_MESE = @INNU_MES1    
  and NU_ASTO  between @ISNU_AST1 And @ISNU_AST2
  and SI_MVTO_CNTB in ('APR', 'DIG') 

open CU_TXMVTO_CNTB_I18_1       
fetch CU_TXMVTO_CNTB_I18_1 into 
 @VSNU_ASTO, @VNNU_SECU, @VDFE_ASTO_CNTB, @VSCO_CNTA_EMPR, @VSTI_AUXI_EMPR, @VSCO_AUXI_EMPR,     
 @VSTI_DOCU, @VSNU_DOCU, @VDFE_DOCU, @VSTI_CAMB, @VSCO_MONE, @VNFA_CAMB, @VSTI_OPER, @VNIM_MVTO_ORIG, 
 @VNIM_MVTO_CNTB, @VSDE_GLOS, @VSNO_GIRA, @VSCO_ORDE_SERV, @VSSI_MVTO_CNTB, @VSCO_UNID_ORIG, @VSCO_OPRC_ORIG, 
 @VSNU_ASTO_ORIG, @VSNU_SECU_ORIG, @VSCO_CNTA_ORIG, @VSST_OTRS, @VDFE_DOCU_VENC, @VNFA_CAMB_DIAR, @VSTI_DOCU_REFE, 
 @VSNU_DOCU_REFE, @VDFE_DOCU_REFE, @VNNU_PROC, @VNNU_PROC_SECU, @VDFE_ENTR_CHEQ, @VDFE_PROG_CHEQ, 
 @VSST_IMPR_CHEQ, @VSST_GEST, @VSST_REDO, @VSST_FLAG, @VSCO_TIPO_OPER, @VSST_DIFE_CAMB, @VSST_CANC_DOCU, 
 @VSST_DIFE_MAYO
      
While @@Fetch_Status = 0        
Begin         
--select @VSNU_ASTO , @VSNU_ASTO_ACTU
  If @VSNU_ASTO <> @VSNU_ASTO_ACTU
   Begin
--    Select 'entro'
    Select @VSNU_ASTO_ACTU = @VSNU_ASTO
--    Select @VNNU_SECU = 1
    Select @VSNU_ASTO_CTB2 = replicate('0', 10 - datalength(Convert(Varchar(10), Isnull(@VNNU_ULTI_ASTO, 0) + 1))) + Convert(Varchar(10), Isnull(@VNNU_ULTI_ASTO, 0) + 1)
    Select @VNNU_ULTI_ASTO = @VNNU_ULTI_ASTO + 1
   End

--select @VSNU_ASTO_CTB2, @VNNU_SECU

  Insert Into TXMVTO_CNTB     
( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, 
  TI_AUXI_EMPR, CO_AUXI_EMPR, TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, 
  DE_GLOS, NO_GIRA, CO_ORDE_SERV, SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG, NU_SECU_ORIG, CO_CNTA_ORIG, 
  ST_OTRS, FE_DOCU_VENC, FA_CAMB_DIAR, TI_DOCU_REFE, NU_DOCU_REFE, FE_DOCU_REFE, NU_PROC, NU_PROC_SECU, FE_ENTR_CHEQ, 
  FE_PROG_CHEQ, ST_IMPR_CHEQ, CO_CLAV_TAOR, ST_GEST, ST_REDO, ST_FLAG, CO_TABL_ORIG, CO_TIPO_OPER, ST_DIFE_CAMB, 
  ST_CANC_DOCU, ST_DIFE_MAYO, CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA )
  values
( @ISCO_EMPR, @INNU_CNTB_EMP2, @ISCO_UNID_CTB2, @ISCO_OPRC_CTB2, @INNU_ANO2, @INNU_MES2, @VSNU_ASTO_CTB2, @VNNU_SECU, 
  @VDFE_ASTO_CNTB, @VSCO_CNTA_EMPR, @VSTI_AUXI_EMPR, @VSCO_AUXI_EMPR, @VSTI_DOCU, @VSNU_DOCU, @VDFE_DOCU, @VSTI_CAMB, 
  @VSCO_MONE, @VNFA_CAMB, @VSTI_OPER, @VNIM_MVTO_ORIG, @VNIM_MVTO_CNTB, @VSDE_GLOS, @VSNO_GIRA, @VSCO_ORDE_SERV, 
  @VSST_ESTA, @VSCO_UNID_ORIG, @VSCO_OPRC_ORIG, @VSNU_ASTO_ORIG, @VSNU_SECU_ORIG, @VSCO_CNTA_ORIG, @VSST_OTRS, 
  @VDFE_DOCU_VENC, @VNFA_CAMB_DIAR, @VSTI_DOCU_REFE, @VSNU_DOCU_REFE, @VDFE_DOCU_REFE, @VNNU_PROC, @VNNU_PROC_SECU, 
  @VDFE_ENTR_CHEQ, @VDFE_PROG_CHEQ, @VSST_IMPR_CHEQ, NULL, @VSST_GEST, @VSST_REDO, @VSST_FLAG, NULL, @VSCO_TIPO_OPER, 
  @VSST_DIFE_CAMB, @VSST_CANC_DOCU, @VSST_DIFE_MAYO, @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA)

/*------------Actualiza datos en lineas de Gestion----------
------*/
 Update TXMVTO_CNTB set
  CO_UNID_ORIG = CO_UNID_CNTB,
  CO_OPRC_ORIG = CO_OPRC_CNTB,
  NU_ASTO_ORIG = NU_ASTO
  From TXMVTO_CNTB    
  Where CO_EMPR    = @ISCO_EMPR    
  and NU_CNTB_EMPR = @INNU_CNTB_EMP2    
  and CO_UNID_CNTB = @ISCO_UNID_CTB2    
  and CO_OPRC_CNTB = @ISCO_OPRC_CTB2    
  and NU_ANNO = @INNU_ANO2
  and NU_MESE = @INNU_MES2
  and NU_ASTO = @VSNU_ASTO_CTB2
  and ST_GEST = 'S' 

--  Select @VNNU_SECU = @VNNU_SECU + 1

fetch CU_TXMVTO_CNTB_I18_1 into 
 @VSNU_ASTO, @VNNU_SECU, @VDFE_ASTO_CNTB, @VSCO_CNTA_EMPR, @VSTI_AUXI_EMPR, @VSCO_AUXI_EMPR,     
 @VSTI_DOCU, @VSNU_DOCU, @VDFE_DOCU, @VSTI_CAMB, @VSCO_MONE, @VNFA_CAMB, @VSTI_OPER, @VNIM_MVTO_ORIG, 
 @VNIM_MVTO_CNTB, @VSDE_GLOS, @VSNO_GIRA, @VSCO_ORDE_SERV, @VSSI_MVTO_CNTB, @VSCO_UNID_ORIG, @VSCO_OPRC_ORIG, 
 @VSNU_ASTO_ORIG, @VSNU_SECU_ORIG, @VSCO_CNTA_ORIG, @VSST_OTRS, @VDFE_DOCU_VENC, @VNFA_CAMB_DIAR, @VSTI_DOCU_REFE, 
 @VSNU_DOCU_REFE, @VDFE_DOCU_REFE, @VNNU_PROC, @VNNU_PROC_SECU, @VDFE_ENTR_CHEQ, @VDFE_PROG_CHEQ, 
 @VSST_IMPR_CHEQ, @VSST_GEST, @VSST_REDO, @VSST_FLAG, @VSCO_TIPO_OPER, @VSST_DIFE_CAMB, @VSST_CANC_DOCU, 
 @VSST_DIFE_MAYO

End
close CU_TXMVTO_CNTB_I18_1
deallocate CU_TXMVTO_CNTB_I18_1

Update TCFECH_PROC    
 Set NU_ULTI_ASTO = Convert(int,@VSNU_ASTO_CTB2)    
  Where CO_EMPR  = @ISCO_EMPR  And     
    NU_CNTB_EMPR  = @INNU_CNTB_EMP2 And    
    CO_UNID_CNTB  = @ISCO_UNID_CTB2 And     
    CO_OPRC_CNTB  = @ISCO_OPRC_CTB2 And     
    NU_ANNO   = @INNU_ANO2   And     
    NU_MESE   = @INNU_MES2    
return    
/*--------------------------------------- Fin -------------------------------------------*/    





GO
